home *** CD-ROM | disk | FTP | other *** search
- DIM SHARED pd AS INTEGER, P AS INTEGER, a AS INTEGER, d AS INTEGER, n0 AS INTEGER, n1 AS INTEGER
- DIM SHARED x1 AS SINGLE, y1 AS SINGLE, l AS SINGLE, pi AS SINGLE, scale AS SINGLE
- DIM SHARED l0(10, 10) AS SINGLE, a0(10) AS INTEGER, a1(10) AS INTEGER, a2(10) AS INTEGER
- DIM SHARED di(10) AS INTEGER, df(10) AS INTEGER, nd(10) AS INTEGER, di0(10) AS INTEGER, df0(10) AS INTEGER
- DIM SHARED nv(10) AS INTEGER, sum(10) AS INTEGER, rp(10) AS INTEGER
- DIM SHARED x(10) AS INTEGER, y(10) AS INTEGER, s AS STRING * 1
- DIM SHARED x0(10) AS INTEGER, y0(10) AS INTEGER, c(50) AS INTEGER, d(20, 10) AS INTEGER
- DECLARE SUB dibuja (P AS INTEGER)
- DECLARE SUB dibujo ()
- DECLARE SUB pinta ()
- dibujo
- '-------------- Fig. 1 --------------
- DATA 12,-90,90,0,3,-1, 3,5
- DATA 490, 90,180,80,0
- DATA 0,2,2,0,2,1,2,1,1,0,0,2
- DATA 350,58.3,9.71,1.62,0.27
- '-------------- Fig. 2 --------------
- DATA 4,120,-60,0,2,-1, 5,7
- DATA 490,360,395,200,1
- DATA 0,1,0,1
- DATA 380,127,42.2,14.1,4.7,1.56,.52
- '-------------- Fig. 3 --------------
- DATA 5, 90, -90,0,3, - 1, 4,6
- DATA 390, 160,575,115,1
- DATA 1,0,1,1,0
- DATA 200,66.66,22.22,7.4,2.47,.82
- '-------------- Fig. 4 --------------
- DATA 7, -60,120,-60,5, -1, 4,6
- DATA 350, 150,130,330,0
- DATA 0,1,3,3,3,3,1
- DATA 100,33.33,11.11,3.72,1.23,.5
- '-------------- Fig. 5 --------------
- DATA 8,-90,90,0,3,-1, 3,5
- DATA 430,130,370,320,0
- DATA 0,1,0,0,2,1,1,0
- DATA 250,62.5,15.65,3.91,.97
- '-------------- Fig. 6 --------------
- DATA 4,120,60,-120,2,-1, 5,7
- DATA 490,360,610,430,1
- DATA 0,1,3,1
- DATA 380,127,42.2,14.1,4.7,1.56,.52
- END
-
-
-
- SUB dibuja (i AS INTEGER)
- a = (a + a0(pd) * (P = 0) + a1(pd) * (P = 1) + a2(pd) * (P = 3)) MOD 360
- x1 = x1 + l * COS(a * pi)
- y1 = y1 + l * SIN(a * pi)
- LINE -(x1, y1), d
- END SUB
-
- SUB dibujo
- pd = 6: dd = pd
- CLS
- FOR i = 1 TO pd
- READ rp(i), a0(i), a1(i), a2(i), nv(i), di(i), df(i), nd(i)
- READ x(i), y(i), x0(i), y0(i), di0(i)
- FOR j = 1 TO rp(i): READ d(j - 1, i): NEXT j
- FOR j = 1 TO nd(i): READ l0(j, i): NEXT j
- NEXT i
- SCREEN 12
- DO
- LOCATE 2, 1: PRINT "¿Te gustan estos dibujos? ¿Sabrías cómo se generan?"
- LOCATE 3, 1: PRINT "Elije el que desees ... y te lo explicaremos gráficamente."
- LOCATE 30, 56: PRINT "Pulsa 'F' para acabar."
- pi = 3.141592659# / 180
- scale = 1 / 2.5
- dd = 6
- FOR i = 40 TO 480 STEP 438 / 2: LINE (0, i)-(640, i): NEXT i
- FOR j = 0 TO 640 STEP 639 / 3: LINE (j, 40)-(j, 480): NEXT j
- FOR i = 0 TO 2: FOR j = 0 TO 1: LOCATE j * 14 + 4, i * 27 + 2: PRINT 3 * j + i + 1: NEXT j, i
- FOR pd = 1 TO dd: x1 = x0(pd): y1 = y0(pd): n0 = di0(pd): n1 = n0: pinta: NEXT pd
- DEF SEG = 0
- POKE &H417, PEEK(&H417) OR &H20
- DO
- s = INPUT$(1)
- LOOP WHILE INSTR("123456Ff", s) = 0
- CLS : scale = 1: pd = VAL(s): IF pd = 0 THEN END ELSE x1 = x(pd): y1 = y(pd): LOCATE 1, 1: PRINT "Vas a ver cómo se dibuja 'paso a paso'.": PRINT "Pulsa cualquier tecla para continuar...": n0 = -1: n1 = df(pd) - 1: pinta
- CLS
- dd = 1
- LOCATE 1, 1: PRINT "Se generan repitiendo un modelo base ,¿cuál?"
- LOCATE 2, 1: PRINT "¿Alguno en especial? Introduce el número de orden, entre '1' y '"; nd(pd); "'"
- s = INPUT$(1): dd = VAL(s)
- DO WHILE dd > 0 AND nd(pd) >= dd
- CLS : x1 = x(pd): y1 = y(pd): LOCATE 1, 1: PRINT "Dibujo con nº de orden "; dd: PRINT "Pulsa cualquier tecla para continuar...": n0 = dd - 2: n1 = n0: pinta: dd = VAL(s)
- LOOP
- CLS
- LOOP
- END SUB
-
- SUB pinta
- FOR n = n0 TO n1
- a = 0
- LINE (x1, y1)-(x1, y1)
- d = (n + 2) MOD 7 + 1
- l = l0(n + 2, pd) * scale
- FOR j = 0 TO nv(pd)
- FOR i = 0 TO n + 1: c(i) = 0: NEXT i
- i = 0
- DO
- P = d(c(i), pd)
- i = 0
- dibuja (c(i))
- IF "" <> INKEY$ THEN s = "": EXIT SUB
- c(i) = (c(i) + 1) MOD rp(pd)
- DO WHILE c(i) = 0
- i = i + 1
- c(i) = (c(i) + 1) MOD rp(pd)
- LOOP
- LOOP WHILE c(n + 1) = 0
- NEXT j
- IF scale = 1 THEN s = INPUT$(1)
- NEXT n
- END SUB
-
-